home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 1.iso / ARGONET / PD / FILER / GZIP1_2_.SPK / Unixlib / c / memcmp
Text File  |  1993-04-03  |  1KB  |  55 lines

  1. #ifdef __STDC__
  2. static char sccs_id[] = "@(#) memcmp.c 1.0 "__DATE__" HJR";
  3. #else
  4. static char sccs_id[] = "@(#) memcmp.c 1.0 26/9/90 HJR";
  5. #endif
  6.  
  7. /* memcmp.c (c) Copyright 1990 H.Rogers */
  8.  
  9. #include <string.h>
  10.  
  11. #ifdef __STDC__
  12. int memcmp(const void *s1,const void *s2,register size_t n)
  13. #else
  14. int memcmp(s1,s2,n)
  15. const void *s1;
  16. const void *s2;
  17. register size_t n;
  18. #endif
  19. {
  20. register unsigned char *_s1 = (unsigned char *)s1,*_s2 = (unsigned char *)s2;
  21.  
  22. while (n & 0x07)
  23.   {
  24.   n--;
  25.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  26.   }
  27. n >>= 3; while (n)
  28.   {
  29.   n--;
  30.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  31.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  32.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  33.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  34.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  35.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  36.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  37.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  38.   }
  39.   if (n == 0) return 0;
  40.  
  41. ret: return(*_s1 - *_s2);
  42. }
  43.  
  44. #ifdef __STDC__
  45. int (bcmp)(register const void *s1,register const void *s2,register size_t n)
  46. #else
  47. int (bcmp)(s1,s2,n)
  48. register const void *s1;
  49. register const void *s2;
  50. register size_t n;
  51. #endif
  52. {
  53. return(bcmp(s1,s2,n));
  54. }
  55.